/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.edu.senaclem.logica;

import java.text.SimpleDateFormat;
import java.util.Date;
import javax.ejb.Stateless;
import javax.faces.context.FacesContext;
import org.primefaces.context.RequestContext;

/**
 *
 * @author FELIPE
 */
@Stateless
public class ReportesLogica implements ReportesLogicaLocal {

    @Override
    public void generarReporteFechas(String url, Date fechaIni, Date fechaFin) throws Exception {

        if (fechaIni == null || fechaFin == null) {
            throw new Exception("Las Fechas son Obligatorias!");
        }
        
        if (fechaIni.after(fechaFin) ) {
            throw new Exception("La Fecha Inicial debe Ser Menor a la Fecha Final!");
        }

        SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
        String fecIni = sdf.format(fechaIni);
        String fecFin = sdf.format(fechaFin);

        String params =
                "'"
                + url + "/ReporteFechas.do?"
                + "fechaini=" + fecIni + "&"
                + "fechafin=" + fecFin
                + "', "
                + "'reportWindow', "
                + "'"
                + "width=1024"
                + ",height=768"
                + ",status=no"
                + ",toolbar=no"
                + ",menubar=no"
                + ",location=no"
                + ",scrollbars=yes"
                + "'";

        //System.out.println(params);

        RequestContext.getCurrentInstance().execute("location.href=" + params + ";");
        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("fechaini", fecIni);
        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("fechafin", fecFin);
    }

    @Override
    public void generarReporteTotalAprendices(String url) throws Exception {
        String params =
                "'"
                + url + "/ReporteTotalAprendices.do"
                + "', "
                + "'reportWindow', "
                + "'"
                + "width=1024"
                + ",height=768"
                + ",status=no"
                + ",toolbar=no"
                + ",menubar=no"
                + ",location=no"
                + ",scrollbars=yes"
                + "'";

        //System.out.println(params);
        RequestContext.getCurrentInstance().execute("location.href=" + params + ";");
    }
    

    @Override
    public void generarReporteAprendiz(String url, String documento) throws Exception {
        if (documento == null || documento.equals("")) {
            throw new Exception("El Documento es Obligatorio!");
        }

        String params =
                "'"
                + url + "/ReporteAprendiz.do?"
                + "documento=" + documento
                + "', "
                + "'reportWindow', "
                + "'"
                + "width=1024"
                + ",height=768"
                + ",status=no"
                + ",toolbar=no"
                + ",menubar=no"
                + ",location=no"
                + ",scrollbars=yes"
                + "'";

        //System.out.println(params);
        RequestContext.getCurrentInstance().execute("location.href=" + params + ";");
        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("documentoAprendiz", documento);
    }

    @Override
    public void generarReporteDependencia(String url, Date fechaIni, Date fechaFin, Integer dependencia) throws Exception {
        if (fechaIni == null || fechaFin == null) {
            throw new Exception("Las Fechas son Obligatorias!");
        }
        
        if (fechaIni.after(fechaFin) ) {
            throw new Exception("La Fecha Inicial debe Ser Menor a la Fecha Final!");
        }   
        
        if (dependencia==null || dependencia==-1 ) {
            throw new Exception("Debe Seleccionar una Dependencia para este Reporte!");
        }

        SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
        String fecIni = sdf.format(fechaIni);
        String fecFin = sdf.format(fechaFin);
        
        String params =
                "'"
                + url + "/ReporteDependencia.do?"
                + "fechaini=" + fecIni + "&"
                + "fechafin=" + fecFin + "&"
                + "dependencia=" + dependencia 
                + "', "
                + "'reportWindow', "
                + "'"
                + "width=1024"
                + ",height=768"
                + ",status=no"
                + ",toolbar=no"
                + ",menubar=no"
                + ",location=no"
                + ",scrollbars=yes"
                + "'";

        //System.out.println(params);

        RequestContext.getCurrentInstance().execute("location.href=" + params + ";");
        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("fechaini", fecIni);
        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("fechafin", fecFin);
        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("dependencia", String.valueOf(dependencia));       
       
    }

    @Override
    public void generarReporteArea(String url, Date fechaIni, Date fechaFin, Integer area) throws Exception {
        if (fechaIni == null || fechaFin == null) {
            throw new Exception("Las Fechas son Obligatorias!");
        }
        
        if (fechaIni.after(fechaFin) ) {
            throw new Exception("La Fecha Inicial debe Ser Menor a la Fecha Final!");
        }
        
        if (area==null || area==-1 ) {
            throw new Exception("Debe Seleccionar una Área para este Reporte!");
        }

        SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
        String fecIni = sdf.format(fechaIni);
        String fecFin = sdf.format(fechaFin);

        String params =
                "'"
                + url + "/ReporteArea.do?"
                + "fechaini=" + fecIni + "&"
                + "fechafin=" + fecFin + "&"
                + "area=" + area 
                + "', "
                + "'reportWindow', "
                + "'"
                + "width=1024"
                + ",height=768"
                + ",status=no"
                + ",toolbar=no"
                + ",menubar=no"
                + ",location=no"
                + ",scrollbars=yes"
                + "'";

        System.out.println(params);

        RequestContext.getCurrentInstance().execute("location.href=" + params + ";");
        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("fechaini", fecIni);
        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("fechafin", fecFin);
        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("area", String.valueOf(area));
    }

    @Override
    public void generarReporteTotalDependencias(String url, Date fechaIni, Date fechaFin) throws Exception {
        if (fechaIni == null || fechaFin == null) {
            throw new Exception("Las Fechas son Obligatorias!");
        }
        
        if (fechaIni.after(fechaFin) ) {
            throw new Exception("La Fecha Inicial debe Ser Menor a la Fecha Final!");
        }
        
        SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
        String fecIni = sdf.format(fechaIni);
        String fecFin = sdf.format(fechaFin);

        String params =
                "'"
                + url + "/ReporteTotalDependencias.do?"
                + "fechaini=" + fecIni + "&"
                + "fechafin=" + fecFin 
                + "', "
                + "'reportWindow', "
                + "'"
                + "width=1024"
                + ",height=768"
                + ",status=no"
                + ",toolbar=no"
                + ",menubar=no"
                + ",location=no"
                + ",scrollbars=yes"
                + "'";

        //System.out.println(params);

        RequestContext.getCurrentInstance().execute("location.href=" + params + ";");
        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("fechaini", fecIni);
        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("fechafin", fecFin);
    }
}
